home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_200 / 221_01 / cc4.asm < prev    next >
Assembly Source File  |  1980-01-01  |  14KB  |  1,325 lines

  1. ;small-c V2.3
  2.  EXT ccdiv,ccmult
  3.  EXT fopen,fclose,getc,putc,putchar,getchar,rewind,gets
  4.  EXT exit
  5.  EXT CCSWITCH
  6.  EXT CCPOLL
  7.  EXT isalpha,isupper,islower,isdigit,isspace
  8.  EXT toupper,tolower
  9.  EXT strlen,reverse,left,strcmp,strcpy
  10.  EXT abs,itoa,atoi,printf
  11.  EXT addglb
  12.  EXT an
  13.  EXT ch
  14.  EXT comment
  15.  EXT findglb
  16.  EXT gch
  17.  EXT getint
  18.  EXT illname
  19.  EXT inbyte
  20.  EXT inchar
  21.  EXT inline
  22.  EXT kill
  23.  EXT nch
  24.  EXT symname
  25.  EXT cmode
  26.  EXT eof
  27.  EXT errcnt
  28.  EXT lptr
  29.  EXT macptr
  30.  EXT mptr
  31.  EXT output
  32.  EXT pause
  33.  EXT cptr
  34.  EXT line
  35.  EXT macq
  36.  EXT mline
  37.  EXT stage
  38.  EXT stagelas
  39.  EXT stagenex
  40.  NAME keepch
  41.  GLOBAL keepch
  42. keepch
  43.  LDD  #mline
  44.  ADDD mptr
  45.  PSHS D
  46.  LDB  5,S
  47.  SEX
  48.  STB  [,S++]
  49.  LDD  mptr
  50.  PSHS D
  51.  LDD  #80
  52.  PSHS D
  53.  LDD  #1
  54.  PULS X
  55.  PSHS D
  56.  TFR  X,D
  57.  SUBD ,S++
  58.  CMPD ,S++
  59.  LBLE cc2
  60.  LDD  mptr
  61.  ADDD #1
  62.  STD  mptr
  63.  SUBD #1
  64. cc2
  65.  LDB  3,S
  66.  SEX
  67.  RTS
  68.  GLOBAL preproce
  69. preproce
  70.  LEAS -12,S
  71.  LDD  cmode
  72.  PSHS D
  73.  LDD  #0
  74.  CMPD ,S++
  75.  LBNE cc3
  76.  LEAS 12,S
  77.  RTS
  78. cc3
  79.  LDD  #0
  80.  STD  lptr
  81.  STD  mptr
  82. cc4
  83.  JSR ch
  84.  CMPD #0
  85.  LBEQ cc5
  86.  JSR ch
  87.  PSHS D
  88.  LDD  #32
  89.  CMPD ,S++
  90.  BEQ  *+7
  91.  LDD  #0
  92.  BRA  *+5
  93.  LDD  #1
  94.  CMPD #1
  95.  LBEQ cc7
  96.  JSR ch
  97.  PSHS D
  98.  LDD  #9
  99.  CMPD ,S++
  100.  BEQ  *+7
  101.  LDD  #0
  102.  BRA  *+5
  103.  LDD  #1
  104.  CMPD #1
  105.  LBEQ cc7
  106.  LDD  #0
  107.  JMP cc8
  108. cc7
  109.  LDD  #1
  110. cc8
  111.  CMPD #0
  112.  LBEQ cc6
  113.  LDD  #32
  114.  PSHS D
  115.  JSR keepch
  116.  LEAS 2,S
  117. cc9
  118.  JSR ch
  119.  PSHS D
  120.  LDD  #32
  121.  CMPD ,S++
  122.  BEQ  *+7
  123.  LDD  #0
  124.  BRA  *+5
  125.  LDD  #1
  126.  PSHS D
  127.  JSR ch
  128.  PSHS D
  129.  LDD  #9
  130.  CMPD ,S++
  131.  BEQ  *+7
  132.  LDD  #0
  133.  BRA  *+5
  134.  LDD  #1
  135.  ORA  ,S+
  136.  ORB  ,S+
  137.  CMPD #0
  138.  LBEQ cc10
  139.  JSR gch
  140.  JMP cc9
  141. cc10
  142.  JMP cc11
  143. cc6
  144.  JSR ch
  145.  PSHS D
  146.  LDD  #34
  147.  CMPD ,S++
  148.  LBNE cc12
  149.  JSR ch
  150.  PSHS D
  151.  JSR keepch
  152.  LEAS 2,S
  153.  JSR gch
  154. cc13
  155.  JSR ch
  156.  PSHS D
  157.  LDD  #34
  158.  CMPD ,S++
  159.  LBEQ cc14
  160.  JSR ch
  161.  PSHS D
  162.  LDD  #0
  163.  CMPD ,S++
  164.  LBNE cc15
  165.  LDD  #cc1+0
  166.  PSHS D
  167.  JSR errrpt
  168.  LEAS 2,S
  169.  JMP cc14
  170. cc15
  171.  JSR gch
  172.  PSHS D
  173.  JSR keepch
  174.  LEAS 2,S
  175.  JMP cc13
  176. cc14
  177.  JSR gch
  178.  LDD  #34
  179.  PSHS D
  180.  JSR keepch
  181.  LEAS 2,S
  182.  JMP cc16
  183. cc12
  184.  JSR ch
  185.  PSHS D
  186.  LDD  #39
  187.  CMPD ,S++
  188.  LBNE cc17
  189.  LDD  #39
  190.  PSHS D
  191.  JSR keepch
  192.  LEAS 2,S
  193.  JSR gch
  194. cc18
  195.  JSR ch
  196.  PSHS D
  197.  LDD  #39
  198.  CMPD ,S++
  199.  LBEQ cc19
  200.  JSR ch
  201.  PSHS D
  202.  LDD  #0
  203.  CMPD ,S++
  204.  LBNE cc20
  205.  LDD  #cc1+14
  206.  PSHS D
  207.  JSR errrpt
  208.  LEAS 2,S
  209.  JMP cc19
  210. cc20
  211.  JSR gch
  212.  PSHS D
  213.  JSR keepch
  214.  LEAS 2,S
  215.  JMP cc18
  216. cc19
  217.  JSR gch
  218.  LDD  #39
  219.  PSHS D
  220.  JSR keepch
  221.  LEAS 2,S
  222.  JMP cc21
  223. cc17
  224.  JSR ch
  225.  PSHS D
  226.  LDD  #47
  227.  CMPD ,S++
  228.  BEQ  *+8
  229.  LDD  #0
  230.  JMP cc23 _
  231.  LDD  #1
  232.  JSR nch
  233.  PSHS D
  234.  LDD  #42
  235.  CMPD ,S++
  236.  BEQ  *+8
  237.  LDD  #0
  238.  JMP cc23 _
  239.  LDD  #1
  240.  LDD  #1
  241. cc23
  242.  CMPD #0
  243.  LBEQ cc22
  244.  JSR inchar
  245.  JSR inchar
  246. cc24
  247.  JSR ch
  248.  PSHS D
  249.  LDD  #42
  250.  CMPD ,S++
  251.  BEQ  *+7
  252.  LDD  #0
  253.  BRA  *+5
  254.  LDD  #1
  255.  PSHS D
  256.  JSR nch
  257.  PSHS D
  258.  LDD  #47
  259.  CMPD ,S++
  260.  BEQ  *+7
  261.  LDD  #0
  262.  BRA  *+5
  263.  LDD  #1
  264.  ANDA ,S+
  265.  ANDB ,S+
  266.  PSHS D
  267.  LDD  #0
  268.  CMPD ,S++
  269.  LBNE cc25
  270.  JSR ch
  271.  CMPD #0
  272.  LBEQ cc26
  273.  JSR inchar
  274.  JMP cc27
  275. cc26
  276.  JSR inline
  277.  LDD  eof
  278.  CMPD #0
  279.  LBEQ cc28
  280.  JMP cc25
  281. cc28
  282. cc27
  283.  JMP cc24
  284. cc25
  285.  JSR inchar
  286.  JSR inchar
  287.  JMP cc29
  288. cc22
  289.  JSR ch
  290.  PSHS D
  291.  JSR an
  292.  LEAS 2,S
  293.  CMPD #0
  294.  LBEQ cc30
  295.  LDD  #0
  296.  STD  10,S
  297. cc31
  298.  JSR ch
  299.  PSHS D
  300.  JSR an
  301.  LEAS 2,S
  302.  CMPD #0
  303.  LBEQ cc32
  304.  LDD  10,S
  305.  PSHS D
  306.  LDD  #8
  307.  CMPD ,S++
  308.  LBLE cc33
  309.  LEAY 0,S
  310.  TFR  Y,D
  311.  PSHS D
  312.  LDD  12,S
  313.  ADDD #1
  314.  STD  12,S
  315.  SUBD #1
  316.  ADDD ,S++
  317.  PSHS D
  318.  JSR ch
  319.  STB  [,S++]
  320. cc33
  321.  JSR gch
  322.  JMP cc31
  323. cc32
  324.  LEAY 0,S
  325.  TFR  Y,D
  326.  PSHS D
  327.  LDD  12,S
  328.  ADDD ,S++
  329.  PSHS D
  330.  LDD  #0
  331.  STB  [,S++]
  332.  LEAY 10,S
  333.  TFR  Y,D
  334.  PSHS D
  335.  LEAY 2,S
  336.  TFR  Y,D
  337.  PSHS D
  338.  JSR findmac
  339.  LEAS 2,S
  340.  STD  [,S++]
  341.  CMPD #0
  342.  LBEQ cc34
  343. cc35
  344.  LEAY 9,S
  345.  TFR  Y,D
  346.  PSHS D
  347.  LDD  #macq
  348.  PSHS D
  349.  LDD  14,S
  350.  ADDD #1
  351.  STD  14,S
  352.  SUBD #1
  353.  ADDD ,S++
  354.  PSHS D
  355.  LDB  [,S++]
  356.  SEX
  357.  STB  [,S++]
  358.  CMPD #0
  359.  LBEQ cc36
  360.  LDB  9,S
  361.  SEX
  362.  PSHS D
  363.  JSR keepch
  364.  LEAS 2,S
  365.  JMP cc35
  366. cc36
  367.  JMP cc37
  368. cc34
  369.  LDD  #0
  370.  STD  10,S
  371. cc38
  372.  LEAY 9,S
  373.  TFR  Y,D
  374.  PSHS D
  375.  LEAY 2,S
  376.  TFR  Y,D
  377.  PSHS D
  378.  LDD  14,S
  379.  ADDD #1
  380.  STD  14,S
  381.  SUBD #1
  382.  ADDD ,S++
  383.  PSHS D
  384.  LDB  [,S++]
  385.  SEX
  386.  STB  [,S++]
  387.  CMPD #0
  388.  LBEQ cc39
  389.  LDB  9,S
  390.  SEX
  391.  PSHS D
  392.  JSR keepch
  393.  LEAS 2,S
  394.  JMP cc38
  395. cc39
  396. cc37
  397.  JMP cc40
  398. cc30
  399.  JSR gch
  400.  PSHS D
  401.  JSR keepch
  402.  LEAS 2,S
  403. cc40
  404. cc29
  405. cc21
  406. cc16
  407. cc11
  408.  JMP cc4
  409. cc5
  410.  LDD  #0
  411.  PSHS D
  412.  JSR keepch
  413.  LEAS 2,S
  414.  LDD  mptr
  415.  PSHS D
  416.  LDD  #80
  417.  PSHS D
  418.  LDD  #1
  419.  PULS X
  420.  PSHS D
  421.  TFR  X,D
  422.  SUBD ,S++
  423.  CMPD ,S++
  424.  LBGT cc41
  425.  LDD  #cc1+33
  426.  PSHS D
  427.  JSR errrpt
  428.  LEAS 2,S
  429. cc41
  430.  LDD  #0
  431.  STD  mptr
  432.  STD  lptr
  433. cc42
  434.  LDD  #line
  435.  PSHS D
  436.  LDD  lptr
  437.  ADDD #1
  438.  STD  lptr
  439.  SUBD #1
  440.  ADDD ,S++
  441.  PSHS D
  442.  LDD  #mline
  443.  PSHS D
  444.  LDD  mptr
  445.  ADDD #1
  446.  STD  mptr
  447.  SUBD #1
  448.  ADDD ,S++
  449.  PSHS D
  450.  LDB  [,S++]
  451.  SEX
  452.  STB  [,S++]
  453.  CMPD #0
  454.  LBEQ cc43
  455.  JMP cc42
  456. cc43
  457.  LDD  #0
  458.  STD  lptr
  459.  LEAS 12,S
  460.  RTS
  461. cc1 FCB 109,105,115,115,105,110,103,32,113,117
  462.  FCB 111,116,101,0,109,105,115,115,105,110
  463.  FCB 103,32,97,112,111,115,116,114,111,112
  464.  FCB 104,101,0,108,105,110,101,32,116,111
  465.  FCB 111,32,108,111,110,103,0
  466.  GLOBAL addmac
  467. addmac
  468.  LEAS -9,S
  469.  LEAY 0,S
  470.  TFR  Y,D
  471.  PSHS D
  472.  JSR symname
  473.  LEAS 2,S
  474.  PSHS D
  475.  LDD  #0
  476.  CMPD ,S++
  477.  LBNE cc45
  478.  JSR illname
  479.  JSR kill
  480.  LEAS 9,S
  481.  RTS
  482. cc45
  483.  LEAY 0,S
  484.  TFR  Y,D
  485.  PSHS D
  486.  LDD  #5
  487.  PSHS D
  488.  LDD  #0
  489.  PSHS D
  490.  LDD  macptr
  491.  PSHS D
  492.  LDD  #5
  493.  PSHS D
  494.  JSR addglb
  495.  LEAS 10,S
  496. cc46
  497.  JSR ch
  498.  PSHS D
  499.  LDD  #32
  500.  CMPD ,S++
  501.  BEQ  *+7
  502.  LDD  #0
  503.  BRA  *+5
  504.  LDD  #1
  505.  CMPD #1
  506.  LBEQ cc48
  507.  JSR ch
  508.  PSHS D
  509.  LDD  #9
  510.  CMPD ,S++
  511.  BEQ  *+7
  512.  LDD  #0
  513.  BRA  *+5
  514.  LDD  #1
  515.  CMPD #1
  516.  LBEQ cc48
  517.  LDD  #0
  518.  JMP cc49
  519. cc48
  520.  LDD  #1
  521. cc49
  522.  CMPD #0
  523.  LBEQ cc47
  524.  JSR gch
  525.  JMP cc46
  526. cc47
  527. cc50
  528.  JSR gch
  529.  PSHS D
  530.  JSR putmac
  531.  LEAS 2,S
  532.  CMPD #0
  533.  LBEQ cc51
  534.  JMP cc50
  535. cc51
  536.  LDD  macptr
  537.  PSHS D
  538.  LDD  #500
  539.  PSHS D
  540.  LDD  #1
  541.  PULS X
  542.  PSHS D
  543.  TFR  X,D
  544.  SUBD ,S++
  545.  CMPD ,S++
  546.  LBGT cc52
  547.  LDD  #cc44+0
  548.  PSHS D
  549.  JSR errrpt
  550.  LEAS 2,S
  551. cc52
  552.  LEAS 9,S
  553.  RTS
  554. cc44 FCB 109,97,99,114,111,32,116,97,98,108
  555.  FCB 101,32,102,117,108,108,0
  556.  GLOBAL putmac
  557. putmac
  558.  LDD  #macq
  559.  ADDD macptr
  560.  PSHS D
  561.  LDB  5,S
  562.  SEX
  563.  STB  [,S++]
  564.  LDD  macptr
  565.  PSHS D
  566.  LDD  #500
  567.  PSHS D
  568.  LDD  #1
  569.  PULS X
  570.  PSHS D
  571.  TFR  X,D
  572.  SUBD ,S++
  573.  CMPD ,S++
  574.  LBLT cc54
  575.  LDD  macptr
  576.  ADDD #1
  577.  STD  macptr
  578. cc54
  579.  LDB  3,S
  580.  SEX
  581.  RTS
  582.  GLOBAL findmac
  583. findmac
  584.  LDD  2,S
  585.  PSHS D
  586.  JSR findglb
  587.  LEAS 2,S
  588.  PSHS D
  589.  LDD  #0
  590.  CMPD ,S++
  591.  BNE  *+8
  592.  LDD  #0
  593.  JMP cc56 _
  594.  LDD  #1
  595.  LDD  cptr
  596.  ADDD #9
  597.  PSHS D
  598.  LDB  [,S++]
  599.  SEX
  600.  PSHS D
  601.  LDD  #5
  602.  CMPD ,S++
  603.  BEQ  *+8
  604.  LDD  #0
  605.  JMP cc56 _
  606.  LDD  #1
  607.  LDD  #1
  608. cc56
  609.  CMPD #0
  610.  LBEQ cc55
  611.  LDD  cptr
  612.  ADDD #12
  613.  PSHS D
  614.  LDD  #2
  615.  PSHS D
  616.  JSR getint
  617.  LEAS 4,S
  618.  RTS
  619. cc55
  620.  LDD  #0
  621.  RTS
  622.  GLOBAL outbyte
  623. outbyte
  624.  LDB  3,S
  625.  SEX
  626.  PSHS D
  627.  LDD  #0
  628.  CMPD ,S++
  629.  LBNE cc57
  630.  LDD  #0
  631.  RTS
  632. cc57
  633.  LDD  stagenex
  634.  CMPD #0
  635.  LBEQ cc58
  636.  LDD  stagenex
  637.  PSHS D
  638.  LDD  stagelas
  639.  CMPD ,S++
  640.  LBNE cc59
  641.  LDD  #cc53+0
  642.  PSHS D
  643.  JSR errrpt
  644.  LEAS 2,S
  645.  LDD  #0
  646.  RTS
  647. cc59
  648.  LDD  stagenex
  649.  ADDD #1
  650.  STD  stagenex
  651.  SUBD #1
  652.  PSHS D
  653.  LDB  5,S
  654.  SEX
  655.  STB  [,S++]
  656. cc60
  657.  JMP cc61
  658. cc58
  659.  LDB  3,S
  660.  SEX
  661.  PSHS D
  662.  LDD  output
  663.  PSHS D
  664.  JSR cout
  665.  LEAS 4,S
  666. cc61
  667.  LDB  3,S
  668.  SEX
  669.  RTS
  670. cc53 FCB 115,116,97,103,105,110,103,32,98,117
  671.  FCB 102,102,101,114,32,111,118,101,114,102
  672.  FCB 108,111,119,0
  673.  GLOBAL cout
  674. cout
  675.  LDB  5,S
  676.  SEX
  677.  PSHS D
  678.  LDD  4,S
  679.  PSHS D
  680.  JSR putc
  681.  LEAS 4,S
  682.  PSHS D
  683.  LDD  #1
  684.  COMA
  685.  COMB
  686.  ADDD #1
  687.  CMPD ,S++
  688.  LBNE cc63
  689.  JSR xout
  690. cc63
  691.  RTS
  692.  GLOBAL sout
  693. sout
  694.  LDD  4,S
  695.  PSHS D
  696.  LDD  4,S
  697.  PSHS D
  698.  JSR fputs
  699.  LEAS 4,S
  700.  PSHS D
  701.  LDD  #1
  702.  COMA
  703.  COMB
  704.  ADDD #1
  705.  CMPD ,S++
  706.  LBNE cc64
  707.  JSR xout
  708. cc64
  709.  RTS
  710.  GLOBAL xout
  711. xout
  712.  LDD  #cc62+0
  713.  PSHS D
  714.  LDD  #2
  715.  PSHS D
  716.  JSR fputs
  717.  LEAS 4,S
  718.  LDD  #0
  719.  PSHS D
  720.  JSR exit
  721.  LEAS 2,S
  722.  RTS
  723. cc62 FCB 111,117,116,112,117,116,32,101,114,114
  724.  FCB 111,114,13,0
  725.  GLOBAL fputs
  726. fputs
  727.  LEAS -1,S
  728. cc66
  729.  LEAY 0,S
  730.  TFR  Y,D
  731.  PSHS D
  732.  LDD  7,S
  733.  ADDD #1
  734.  STD  7,S
  735.  SUBD #1
  736.  PSHS D
  737.  LDB  [,S++]
  738.  SEX
  739.  STB  [,S++]
  740.  CMPD #0
  741.  LBEQ cc67
  742.  LEAY 0,S
  743.  TFR  Y,D
  744.  PSHS D
  745.  LDB  2,S
  746.